package org.framework.lazy.cloud.network.heartbeat.server.standalone.application.command.lazy.proxy.flow;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import org.framework.lazy.cloud.network.heartbeat.common.enums.ChannelProtocolType;
import org.framework.lazy.cloud.network.heartbeat.common.enums.ChannelProxyType;

import java.time.LocalDateTime;

/**
 * describe 代理流量
 *
 * @author Jia wei Wu
 * @date 2025/06/06 11:39 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyUpdateCommand
 **/
@Data
@Accessors(chain = true)
@Schema(title = "lazy_proxy_flow_update_command", description = "代理流量")
public class LazyProxyFlowUpdateCommand {


    /**
     * 客户端ID
     */
    @Schema(description = "客户端ID", name = "clientId", example = "")
    private String clientId;

    /**
     *
     */
    @Schema(description = "", name = "createTime", example = "")
    private LocalDateTime createTime;

    /**
     * 主键
     */
    @Schema(description = "主键", name = "id", example = "")
    private Long id;

    /**
     * 当前访客当前进口流量
     */
    @Schema(description = "当前访客当前进口流量", name = "inFlow", example = "")
    private Integer inFlow;

    /**
     * 目标ip
     */
    @Schema(description = "目标ip", name = "ip", example = "")
    private String ip;

    /**
     * 是否删除
     */
    @Schema(description = "是否删除", name = "isDeleted", example = "")
    private Boolean isDeleted;

    /**
     * 当前访客出口流量
     */
    @Schema(description = "当前访客出口流量", name = "outFlow", example = "")
    private Integer outFlow;

    /**
     * 目标端口
     */
    @Schema(description = "目标端口", name = "port", example = "")
    private Integer port;

    /**
     * 协议类型
     */
    @Schema(description = "协议类型", name = "protocolType", example = "")
    private ChannelProtocolType protocolType;

    /**
     * 代理类型
     */
    @Schema(description = "代理类型", name = "proxyType", example = "")
    private ChannelProxyType proxyType;


    /**
     *
     */
    @Schema(description = "", name = "updateTime", example = "")
    private LocalDateTime updateTime;

}